home *** CD-ROM | disk | FTP | other *** search
/ Megahits 3 / Megahits 3 (1994)(GTI - Rhein-Main-Soft)(DE)[!].iso / module / utilities / archives / midi_play120.lha / midiplay.doc < prev    next >
Text File  |  1993-10-17  |  8KB  |  259 lines

  1. Document MidiPlay
  2.  
  3. 1. INTRODUCTION
  4.  
  5. 1.1. VERSION
  6.  
  7. midiplay v1.2b  17-Oct-93
  8.  
  9. 1.2. DISCLAIMER
  10.  
  11. The author of this program can not be held responsible for any damage  
  12. directly or indirectly caused by the use of the program. Use it at your
  13. own risk.
  14.  
  15. 1.3. COPYRIGHT
  16.  
  17. This program is copyright 1993 Janne Syväniemi. All Rights Reserved.
  18. The program is GIFTWARE. It is freely distributable as long as all files
  19. are included in their original form and no extra fee is charged. Midiplay
  20. may not be included in any commercial package without a permission of the
  21. author. If you use midiplay, send me anything worth of it (especially I
  22. would like to hear your own compositions in midi format).
  23.  
  24. See also `Author'
  25.  
  26. 1.4. WHAT IS MIDIPLAY ?
  27.  
  28. Midiplay is a program that can play format 0 and 1 midi files (format 2 has
  29. not been tested). It can also print their contents. Other features include:
  30. - tempo can be changed
  31. - midi channels can be muted or played solo
  32. - midi events can be transposed (plus drum channel option)
  33. - program change and pitch bender message filter
  34. - endless loop option
  35. - format 1 files can be played like format 0 files (= format 2)
  36. - external or internal sync
  37.  
  38.  
  39. 1.5. REQUIREMENTS
  40.  
  41. Midiplay should run on any Amiga from version 1.2 and up.
  42. Midiplay has been tested only on Amiga 500+ with 3Mb ram, but it has been
  43. compiled with Lattice/SAS C compiler v5.04 with KS 1.3 includes, so no
  44. >2.0 specific code has been used.
  45.  
  46.  
  47. 2. INSTALLATION
  48.  
  49. Copy midi.library v2.0 to your LIBS: directory and midiplay wherever you like.
  50.  
  51. Bill Barton's midi.library is Copyright (C) 1987, 1988, Pregnant Badger 
  52. Music. More info about midi.library can be found on FredFish disk 227.
  53.  
  54.  
  55. 3. STARTING MIDIPLAY
  56.  
  57. 3.1. CLI
  58.  
  59.    TYPE: midiplay [options] [filename]
  60.  
  61.    Only one file is allowed. If no filename has been given, midiplay
  62.    expects input from current input stream, so redirection can be used.
  63.  
  64.    Options:
  65.    
  66.    -? usage message
  67.    
  68.    -f prints details of the midi file: format, the number of the tracks
  69.       and the division of a quarter-note.
  70.  
  71.    -x prints all meta events in the file. A meta event can express
  72.       tempo, time signature, key signature or text event (copyright
  73.       notice, sequence/track name, instrument name, lyric etc.)
  74.  
  75.    -n prevents midiplay from sending events to midi port. Using this
  76.       option you can print all the events without any delay between
  77.       events.
  78.  
  79.    -tXXX sets playing tempo to XXX (BPM). Tempo change messages in
  80.       the midi file are ignored.
  81.  
  82.    -d prints all real midi events in the file.
  83.  
  84.    -mC mutes all events on channel C.
  85.  
  86.    -sC sends only events on channel C.
  87.  
  88.    -rX transposes all note on/off messages by X (see also -u option).
  89.  
  90.    -uX sets drum channel to X. If this option is given, no transpose
  91.        will happen on this channel.
  92.  
  93.    -c program change messages are not sent.
  94.  
  95.    -b pitch bender messages are not sent.
  96.  
  97.    -l loop. Plays the file infinite times.
  98.  
  99.    -pXXX sets program priority to XXX (default is 30)
  100.  
  101.    -q plays tracks (in format 1 files) in sequence.
  102.  
  103.    -g merges midi input to midi output (actually, it routes the MidiIn port
  104.       to the MidiOut port)
  105.  
  106.    -e receives clock signals from an external source and synchronizes with
  107.       it. Tempo can be controlled in real time from the source. The program
  108.       waits a Start or Continue message from that source before starting.
  109.       Midiplay can be stopped by sending a Stop message.
  110.       If this option is not given, Midiplay transmits clock signals and
  111.       Start and Stop messages. Thus an external source can be synchronized
  112.       with Midiplay.
  113.  
  114.    Simple options can be given together like: -dcbl. Options with
  115.    numbers must be given separate from the following options like:
  116.    -u10 -lbp35 -m1 -m2 -dm4.
  117.  
  118.  
  119. 3.2. WORKBENCH
  120.  
  121.    DOUBLE CLICK Midi file icon (= project icon with default tool
  122.    midiplay) or SELECT midi file icon and DOUBLE CLICK midiplay icon.
  123.  
  124.    Following tooltypes in a project icon are allowed:
  125.  
  126.    FILEINFO=ON
  127.       prints details of the midi file: format, the number of the tracks
  128.       and the division of a quarter-note.
  129.  
  130.    TEXTINFO=ON
  131.       prints all meta events in the file. A meta event can express
  132.       tempo, time signature, key signature or text event (copyright
  133.       notice, sequence/track name, instrument name, lyric etc.)
  134.  
  135.    DONOTPLAY=ON
  136.       prevents midiplay from sending events to midi port. Using this
  137.       option you can print all the events without any delay between
  138.       events.
  139.  
  140.    TEMPO=XXX
  141.       sets playing tempo to XXX (BPM). Tempo change messages in
  142.       the midi file are ignored.
  143.  
  144.    DATAINFO=ON
  145.       prints all real midi events in the file.
  146.  
  147.    MUTE=C1 or MUTE=C1|C2|C3...
  148.       mutes all events on channel C1 (and channel C2 ...).
  149.  
  150.    SOLO=C
  151.       sends only events on channel C.
  152.  
  153.    TRANSPOSE=X
  154.       transposes all note on/off messages by X (see also -u option).
  155.  
  156.    DRUMCHANNEL=X
  157.       sets drum channel to X. If this option is given, no transpose
  158.       will happen on this channel.
  159.  
  160.    NOPC=ON
  161.       program change messages are not sent.
  162.  
  163.    NOPB=ON
  164.       pitch bender messages are not sent.
  165.  
  166.    LOOP=ON
  167.       loop. Plays the file infinite times.
  168.  
  169.    PRIORITY=XXX
  170.       sets program priority to XXX (default is 30)
  171.  
  172.    SEQUENCE=ON
  173.       plays tracks (in format 1 files) in sequence.
  174.  
  175.    MERGE=ON
  176.       merges midi input to midi output (actually, it routes the MidiIn port
  177.       to the MidiOut port)
  178.  
  179.    EXT=ON
  180.       receives clock signals from an external source and synchronizes with
  181.       it. Tempo can be controlled in real time from the source. The program
  182.       waits a Start or Continue message from that source before starting.
  183.       Midiplay can be stopped by sending a Stop message.
  184.       If this option is not given, Midiplay transmits clock signals and
  185.       Start and Stop messages. Thus an external source can be synchronized
  186.       with Midiplay.
  187.  
  188.  
  189. 4. OTHER INFORMATION
  190.  
  191. -When started from Workbench, midiplay opens its own console window.
  192. -Midiplay can be stopped using CONTROL-C.
  193. -Midiplay opens one midi source named "midiplay". Source is connected to
  194.  MIDI library's resident node "MidiOut". If an external sync option is given,
  195.  Midiplay will open also one midi destination named "midiplayin".
  196.  
  197.  
  198. 5. TODO
  199.  
  200. -GUI
  201. -midi2text and text2midi (for addition of lyrics and other text)
  202. -singer: speech synthesizer :-)))
  203. -midi mixing
  204. -Amiga's internal sounds played on midi channels
  205. -AREXX port
  206.  
  207.  
  208. 6. PROBLEMS AND LIMITATIONS
  209.  
  210. On smaller Amigas (500 & 600) Midiplay does not multitask very well. Files
  211. are played in time, but sometimes tempo is quite jerky. But I am happy with
  212. it on my A500 28Mhz and over 30 processes running. If you have something
  213. to complain, please let me know.
  214.  
  215. There are still some problems in external sync mode. MidiIn may lose some
  216. clock signals on smaller Amigas and the midiplayer is then out of sync. If
  217. this happens, use slower tempo and do not print anything.
  218.  
  219. Because Midiplay uses normal console windows, printing (and thus playing)
  220. can be stopped by pressing any key other than enter.
  221.  
  222. Command ls (and maybe some other programs too) doesn't work correctly after
  223. Midiplay has been started first time  from the CLI. I don't know why.
  224.  
  225. Limitations:
  226. -SYSEX messages are not analysed nor printed.
  227.  
  228.  
  229. 7. HISTORY
  230.  
  231. v1.0: 29-Jun-93, first version, only DOS, format 0 files.
  232.  
  233. v1.1: 23-Jul-93, first public release, WB and tooltypes, format 1 files.
  234.  
  235. v1.2: 29-Aug-93, external/internal sync and midi merge added, SYSEX messages
  236.          now transmitted correctly, too slow tempo problem fixed.
  237.  
  238. v1.2b:17-Oct-93, some corrections, smaller code
  239.  
  240. 8. AUTHOR
  241.  
  242. Programs, postcards, midi files, bug reports, requests, suggestions, 
  243. questions to:
  244.    Janne Syväniemi
  245.    Lintuviidankatu 15 C 10
  246.    FIN-33340 TAMPERE
  247.    FINLAND
  248.  E-mail:csjasy@vehka.cs.uta.fi or csjasy@uta.fi
  249.  
  250. Hardware: Amiga500+, SupraTurbo28, SupraDrive500XP 52Mb(+2Mb Fast Mem),
  251.      MIDI interface, ROLAND D-10.
  252. Software: Dr T's KCS v3.57 (the best sequencer program)
  253.  
  254. 9. CREDITS
  255.  
  256. Thanks to:
  257.  
  258. JBM for MIDI files and comments
  259.